"""Python 异常的传递性知识点
======================

在Python中，异常具有传递性特点。当一个函数内部发生异常而没有被捕获时，
该异常会沿着函数调用栈向上传递，直到被合适的异常处理代码捕获或导致程序终止。
当程序在执行过程中发生异常时，如果异常没有被立即捕获和处理，那么异常发生点之后的代码将不会被执行。
程序会立即跳出当前的执行流程，开始寻找能够处理该异常的代码。

异常传递机制是Python错误处理的重要特性，它允许在合适的层级处理异常，
而不是必须在异常发生的当前位置处理。
"""

# 基本异常传递示例
def func1():
    """引发异常的函数"""
    print("func1 开始执行")
    # 故意引发一个异常
    num = 1 / 0  # ZeroDivisionError
    print("func1 执行完毕")  # 这行不会执行

def func2():
    """调用func1的函数"""
    print("func2 开始执行")
    func1()  # 调用func1，异常会从func1传递到func2
    print("func2 执行完毕")  # 这行不会执行

def func3():
    """处理异常的函数"""
    print("func3 开始执行")
    try:
        func2()  # 调用func2，异常会传递到这里
    except ZeroDivisionError:
        print("捕获到除零错误！在func3中处理异常")
    print("func3 执行完毕")

# 执行示例
func3()
